#!/bin/bash

# 定义服务名称（便于识别的名称）
SERVICE_ALIAS_NAME="CRRCSDWPower-Middleware"

# 定义服务名称（与 docker-compose 中的 service name 一致）
COMPOSE_SERVICE_NAME="greeting"

# 定义 Docker Compose 文件路径（根据实际情况调整）
COMPOSE_FILE="/cloudcc/cc-svc/greeting.yaml"

# 检查 docker-compose 是否安装
check_docker_compose() {
  if ! command -v docker-compose &> /dev/null; then
    echo "❌ docker-compose 未安装，请先安装 docker-compose。"
    exit 1
  fi
}

# 启动服务
start() {
  check_docker_compose
  echo "🚀 正在启动服务: $SERVICE_ALIAS_NAME ..."
  docker-compose -f "$COMPOSE_FILE" up -d
  if [ $? -eq 0 ]; then
    echo "✅ 服务 $SERVICE_ALIAS_NAME 启动成功."
  else
    echo "❌ 服务 $SERVICE_ALIAS_NAME 启动失败."
  fi
}

# 停止服务
stop() {
  check_docker_compose
  echo "⏹️ 正在停止服务: $SERVICE_ALIAS_NAME ..."
  docker-compose -f "$COMPOSE_FILE" down
  if [ $? -eq 0 ]; then
    echo "✅ 服务 $SERVICE_ALIAS_NAME 已停止."
  else
    echo "❌ 停止服务 $SERVICE_ALIAS_NAME 失败."
  fi
}

# 重启服务
restart() {
  check_docker_compose
  echo "🔄 正在重启服务: $SERVICE_ALIAS_NAME ..."
  stop
  start
  if [ $? -eq 0 ]; then
    echo "✅ 服务 $SERVICE_ALIAS_NAME 重启成功."
  else
    echo "❌ 服务 $SERVICE_ALIAS_NAME 重启失败."
  fi
}

# 查看服务状态
status() {
  check_docker_compose
  echo "ℹ️  查看服务 $SERVICE_ALIAS_NAME (service: $COMPOSE_SERVICE_NAME) 的状态:"
  docker-compose -f "$COMPOSE_FILE" ps $COMPOSE_SERVICE_NAME
}

# 输出服务日志
logs() {
  check_docker_compose
  echo "📃 查看服务 $SERVICE_ALIAS_NAME 日志:"
  docker-compose -f "$COMPOSE_FILE" logs -f "$COMPOSE_SERVICE_NAME"
}

# 显示帮助信息
usage() {
  echo "使用方法: $0 {start|stop|restart|status|logs}"
  echo "  start     - 启动服务"
  echo "  stop      - 停止服务"
  echo "  restart   - 重启服务"
  echo "  status    - 查看服务运行状态"
  echo "  logs      - 实时输出服务日志"
}

# 主逻辑
if [ $# -ne 1 ]; then
  usage
  exit 1
fi

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  status)
    status
    ;;
  logs)
    logs
    ;;
  *)
    echo "❌ 错误: 未知命令 '$1'"
    usage
    exit 1
    ;;
esac